package com.bear.fastrepair.entity

/**
 * 新增订单
 * @property addressDetail String 客户预约详细地址（精确到门牌号）
 * @property appointEndTime String 预约结束时间
 * @property appointStartTime String 预约开始时间
 * @property clientName String 客户姓名
 * @property clientRemark String 客户备注
 * @property clientTel String 客户电话号码
 * @property description String 订单描述信息
 * @property employeeId String 分派员工id
 * @property locationAddress String 客户预约地址信息
 * @property locationLatitude Int 客户预约地址纬度
 * @property locationLongitude Int 客户预约地址经度
 * @property orderImages String 订单图片（Base64）
 * @property regionCode String 区域编码
 * @property regionText String 区域名
 * @constructor
 */
data class NewOrder(
    val addressDetail: String,
    val appointEndTime: String = "",
    val appointStartTime: String = "",
    val clientName: String,
    val clientRemark: String = "",
    val clientTel: String,
    val description: String,
    val employeeId: String = "",
    val locationAddress: String,
    val locationLatitude: Int,
    val locationLongitude: Int,
    val orderImages: String = "",
    val regionCode: String,
    val regionText: String
)

/**
 * 本次账单全部信息
 * @property code Int 返回编码
 * @property data OrderInfo 返回订单信息
 * @property msg String 返回信息
 * @constructor
 */
data class OrderInfoDetails(
    val code: Int,
    val `data`: OrderInfo,
    val msg: String
)

/**
 * 账单信息
 * @property addressDetail String 客户预约详细地址（精确到门牌号）
 * @property appointEndTime String 预约结束时间
 * @property appointStartTime String 预约开始时间
 * @property clientName String 客户名
 * @property clientRemark String 客户备注
 * @property clientTel String 客户电话号码
 * @property description String 订单描述
 * @property id String 订单ID
 * @property locationAddress String 客户预约地址
 * @property locationLatitude Int 客户预约地址纬度
 * @property locationLongitude Int 客户预约地址经度
 * @property orderBillListVOList List<OrderBillListVO> 工单列表
 * @property orderImages String 订单图片
 * @property orderNo String 订单编号
 * @property orderStatus Int 订单状态 ，0：新增 1：已分派 2：已完成 3：已退回 4：带回 5：带回维修完成 6：已作废
 * @property regionCode String 订单区域编码
 * @property regionText String 订单区域名
 * @constructor
 */
data class OrderInfo(
    val addressDetail: String,
    val appointEndTime: String,
    val appointStartTime: String,
    val clientName: String,
    val clientRemark: String,
    val clientTel: String,
    val description: String,
    val id: String,
    val locationAddress: String,
    val locationLatitude: Int,
    val locationLongitude: Int,
    val orderBillListVOList: List<OrderBillListVO>,
    val orderImages: String,
    val orderNo: String,
    val orderStatus: Int,
    val regionCode: String,
    val regionText: String
)

/**
 * 员工单信息
 * @property billType Int 账单类型：0：成本支出 1：费用收入
 * @property billTypeText String （字典文案）账单类型：0：成本支出 1：费用收入
 * @property employeeId String 员工id
 * @property employeeName String 员工名
 * @property id String 工单id
 * @property images String 图片
 * @property orderId String 订单id
 * @property price Int 金额
 * @property remark String 备注
 * @property updateTime String 更新时间
 * @constructor
 */
data class OrderBillListVO(
    val billType: Int,
    val billTypeText: String,
    val employeeId: String,
    val employeeName: String,
    val id: String,
    val images: String,
    val orderId: String,
    val price: Int,
    val remark: String,
    val updateTime: String
)

/**
 * 查询订单（分页）
 * @property code Int 返回编码
 * @property `data` OrderPage 单页订单信息
 * @property msg String 返回信息
 * @constructor
 */
data class OrderInfoPage(
    val code: Int,
    val `data`: OrderPage,
    val msg: String
)

/**
 * 单页订单
 * @property pageTotal Int 页总数
 * @property records List<OrderInfo> 单页订单列表
 * @property total Int 记录总数
 * @constructor
 */
data class OrderPage(
    val pageTotal: Int,
    val records: List<OrderInfo>,
    val total: Int
)

/**
 * 修改订单请求体
 * @property addressDetail String 客户预约详细地址（精确到门牌号）
 * @property appointEndTime String 预约结束时间
 * @property appointStartTime String 预约开始时间
 * @property clientName String 客户姓名
 * @property clientRemark String 客户备注
 * @property clientTel String 客户电话号码
 * @property description String 订单描述信息
 * @property locationAddress String 客户预约地址信息
 * @property locationLatitude Int 客户预约地址纬度
 * @property locationLongitude Int 客户预约地址经度
 * @property orderImages String 订单图片（Base64）
 * @constructor
 */
data class ModifyOrder(
    val addressDetail: String,
    val appointEndTime: String,
    val appointStartTime: String,
    val clientName: String,
    val clientRemark: String,
    val clientTel: String,
    val description: String,
    val locationAddress: String,
    val locationLatitude: Int,
    val locationLongitude: Int,
    val orderImages: String
)


